package com.shenfa.service.xml;

import java.io.File;
import java.io.IOException;
import java.io.RandomAccessFile;

/**
 * 纸质账单xml写入
 * @author Administrator
 *
 */
public class PXml{
	/**
	 * 文件写入流
	 */
	public RandomAccessFile filew;
	/**
	 * 纸质账单实体文件
	 */
	public File file;
	
	/**
	 * 创建一个xml
	 * xml路径：基础路径/账期年/账期月/账期日/page/外包商ID
	 * xml命名：账期_产品ID_预印纸ID_外包商ID.xml
	 * @param cardid 产品ID
	 * @param wbs 外包商ID
	 * @param yyz 预印纸编号
	 */
	public String create(String cardid,String wbs,String yyz,String path){
		//获取xml文件保存路径

		File temp=new File(path);
		//判断保存文件的路径是否存在
		if(!temp.exists()){
			temp.mkdirs();
		}
		//创建文件对象.账期_产品ID_预印纸ID_外包商ID.xml
		file=new File(path+"TNO_"+cardid+"_"+yyz+"_"+wbs+"_"+System.currentTimeMillis()+".xml");
		try {
			if(file.exists()){
				file.delete();
			}
			//如果创建文件实体成功
			if(file.createNewFile()){
				filew=new RandomAccessFile(file.getPath(),"rw");//创建文件I/O流对象
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
		//写入xml开头片段
		this.write("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<xyk>\n<checksheets>\n");
		return file.getPath().replace("\\", "/");
	}
	/**
	 * 写入文件
	 * @param xml
	 */
	public void write(String xml){
		try {
			filew.write(xml.getBytes("utf-8"));
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
	/**
	 * 结束写入xml文件
	 * @param xml
	 */
	public void over(int count){
		try {
			//写入xml结束片段
			filew.write("</checksheets>\n</xyk>\n".getBytes("utf-8"));
			filew.close();
			if(0==count){
				file.delete();
			}
		} catch (IOException e) {
			e.printStackTrace();
		}
	}
}
